package com.xk.entity;

import java.util.Date;

import java.io.Serializable;

import com.baomidou.mybatisplus.annotation.*;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

/**
 * 试卷表(TestPaper)表实体类
 *
 * @author YaWu
 * @since 2024-12-14 23:54:32
 */
@SuppressWarnings("serial")
@Data
@AllArgsConstructor
@NoArgsConstructor
@TableName("t_test_paper")
@Accessors(chain = true)
public class TestPaper  {
    //试卷表的id
    @TableId
    private Long testPaperId;

    //年度
    private Long yearTypeId;
    //学生的id
    private Long userId;
    //考试的生的名字,冗余字段
    private String nickName;
    //用户账号, (学生就学号, 老师就是工号),冗余字段
    private String userName;
    //答题卡的id 示例:[111, 222, 33]
    private String answerSheetIds;
    //学生的考试分数,没有数据说明没有提交, 定时任务来刷新
    private Double totalPoints;
    //考试每个题型出题数量 示例:[{"1":15}, {"2":5}, {"3":10}]
    private String typeNums;
    //这次考试设置试卷总分数, 例如100
    private Long settingTotalPoints;
    //这次考试的合格线, 百分制, 90等于 占总分90%以上(包含90%)合格
    private Long passTotal;
    //每个题型占总分的百分百比, 示例     [{"1":40}, {"2":50}, {"3":10}]
    private String config;
    //是否合格, 1表示合格 0表示不合格 , -1表示未提交结算
    private Long isPass;
    //考试开始时间
    private Date beginTime;
    //考试结束时间, 提交试卷相差5秒也可以提交, 预防网络
    private Date endTime;
    //最后提交试卷的时间
    private Date endSubmitTime;
    //创建时间
    @TableField(fill = FieldFill.INSERT)
    private Date createTime;
    //创建人的用户id
    @TableField(fill = FieldFill.INSERT)
    private Long createBy;
    //更新时间有数据修改会自动更新
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Date updateTime;
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Long updateBy;
    //删除标志（0代表存在 1代表删除）
    @TableLogic(value = "0", delval = "1")
    private String delFlag;



}
